import { Injectable } from '@nestjs/common';
import { Observable } from 'rxjs';
import { chat } from 'src/util/spark';
import { CreateAichatDto } from './dto/create-aichat.dto';
import { UpdateAichatDto } from './dto/update-aichat.dto';

@Injectable()
export class AichatService {
  async create(createAichatDto: CreateAichatDto) {

  }

  sendMessage(data): Observable<string> {
    return new Observable(subscriber => {
      chat({
        content: data.message,
        // onData 表示分段拿到返回结果
        onData({ content, start, end, seq }) {
          // content 表示分段的内容 
          // start 表示是否是第一段
          // end 表示是否是最后一段
          // seq 表示序号
          subscriber.next(content)

        },
        onEnd({ content, tokens, questionTokens }) {
          // content 表示完整的返回
          // token 表示返回回答的token数
          // questionTokens 表示发起对话的token数
          // console.log(content, tokens, questionTokens);
          subscriber.complete()
        }
      })

    })
    }

    findOne(id: number) {
      return `This action returns a #${id} aichat`;
    }

    update(id: number, updateAichatDto: UpdateAichatDto) {
      return `This action updates a #${id} aichat`;
    }

    remove(id: number) {
      return `This action removes a #${id} aichat`;
    }
  }
